package com.wy.system.service.impl;

import java.util.List;

import com.wy.system.domain.vo.SysStaffVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import com.wy.system.mapper.SysStaffMapper;
import com.wy.system.domain.SysStaff;
import com.wy.system.service.ISysStaffService;

/**
 * 员工管理Service业务层处理
 * 
 * @author ruoyi
 * @date 2023-03-03
 */
@Service
@Primary
public class SysStaffServiceImpl implements ISysStaffService 
{
    @Autowired
    private SysStaffMapper sysStaffMapper;

    /**
     * 查询员工管理
     * 
     * @param id 员工管理主键
     * @return 员工管理
     */
    @Override
    public SysStaffVo selectSysStaffById(Long id)
    {
        return sysStaffMapper.selectSysStaffById(id);
    }

    /**
     * 查询员工管理列表
     * 
     * @param sysStaff 员工管理
     * @return 员工管理
     */
    @Override
    public List<SysStaffVo> selectSysStaffList(SysStaff sysStaff)
    {
        return sysStaffMapper.selectSysStaffList(sysStaff);
    }

    /**
     * 新增员工管理
     * 
     * @param sysStaff 员工管理
     * @return 结果
     */
    @Override
    public int insertSysStaff(SysStaff sysStaff)
    {
        return sysStaffMapper.insertSysStaff(sysStaff);
    }

    /**
     * 修改员工管理
     * 
     * @param sysStaff 员工管理
     * @return 结果
     */
    @Override
    public int updateSysStaff(SysStaff sysStaff)
    {
        return sysStaffMapper.updateSysStaff(sysStaff);
    }

    /**
     * 批量删除员工管理
     * 
     * @param ids 需要删除的员工管理主键
     * @return 结果
     */
    @Override
    public int deleteSysStaffByIds(Long[] ids)
    {
        return sysStaffMapper.deleteSysStaffByIds(ids);
    }

    /**
     * 删除员工管理信息
     * 
     * @param id 员工管理主键
     * @return 结果
     */
    @Override
    public int deleteSysStaffById(Long id)
    {
        return sysStaffMapper.deleteSysStaffById(id);
    }


    /**
     *
     * @param id
     * @param value
     * @return 结果
     */
    @Override
    public int updateSysStaff(Long id, Long value) {
        SysStaffVo sysStaff = sysStaffMapper.selectSysStaffById(id);
        if (value>0){
            sysStaff.setPayAdd(sysStaff.getPayAdd()+value);
        }
        else {
            sysStaff.setPayLose(sysStaff.getPayLose()+value);
        }
        //求和
        Long total= sysStaff.getPayAll()+sysStaff.getPayAdd()+sysStaff.getPayLose();
        sysStaff.setPayTotal(total);

        return sysStaffMapper.updateSysStaff2(id,total);
    }
}
